#include <bits/stdc++.h>
using namespace std;
const int W = 1e9;
const long long INF = 1e18;
int main(){
long long n, poc=1, kon=W, mid, h;
long long out=INF;
cin >> n;
while(poc<kon){
mid=(poc+kon)/2;
cout<<"? "<< mid << '\n';
cout.flush();
cin >> h;
if(h==1) kon=mid;
else poc=mid+1;
}
for(long long i=1; i<=n; i++){
cout << "? "<< poc/i << '\n';
cout.flush();
cin >> h;
if(h) out=min(out, (poc/i)*h);
}
cout << "! " << out;
return 0;
}
892A - Greed | 32A - Reconnaissance |
1236D - Alice and the Doll | 1207B - Square Filling |
1676D - X-Sum | 1679A - AvtoBus |
1549A - Gregor and Cryptography | 918C - The Monster |
4B - Before an Exam | 545B - Equidistant String |
1244C - The Football Season | 1696B - NIT Destroys the Universe |
1674A - Number Transformation | 1244E - Minimizing Difference |
1688A - Cirno's Perfect Bitmasks Classroom | 219A - k-String |
952A - Quirky Quantifiers | 451B - Sort the Array |
1505H - L BREAK into program | 171E - MYSTERIOUS LANGUAGE |
630D - Hexagons | 1690D - Black and White Stripe |
1688D - The Enchanted Forest | 1674C - Infinite Replacement |
712A - Memory and Crow | 1676C - Most Similar Words |
1681A - Game with Cards | 151C - Win or Freeze |
1585A - Life of a Flower | 1662A - Organizing SWERC |